lr = 0.01 # 学习率
net = XORNet() # 创建模型
loss = nn.MSELoss() # 均方差损失函数
optim = optim.Adam(net.parameters(),lr) # 优化器
# 开始训练
for ibatch in range(3000):
    # 数据集前两列,X1,X2作为模型输入
    x_input = FloatTensor(dataset[:,0:2]) # dataset[:,0:2] (4,2)
    # 数据集最后一列,作为标签   
    target = FloatTensor(dataset[:,2:])
    # 输入模型
    y_pred = net(x_input)
    # 计算损失
    cost = loss(y_pred, target)
    # 梯度清零,反向传播,参数更新
    optim.zero_grad()    
    cost.backward()
    optim.step()
    
    if ibatch % 100 == 0:
        print('{:<8} {:.4e}'.format(ibatch, cost.data))  
